/**
 * This interface provides generic methods to integrate any AJAX based
 * map service into you web application.
 * Using this interface, you can specify the maps data by setting the location
 * and add overlays to mark a position or a route.
 * 
 * @author Kim Pommert
 * @version %I%, %G%
 */
qx.Interface.define("qooxdoosample.cocktail.maps.IMap",
{
	members:
	{
		/**
		 * Get the provider's map object.
		 * 
		 * @return {Object} The map
		 */
		getMap: function(){},
		
		/**
		 * Set the provider's map object.
		 * 
		 * @param map	{Object} the map to set
		 */
		setMap: function(map){},
		
		/**
		 * Set the center of the map to the specified coordinates.
		 * 
		 * @param position	{qooxdoosample.cocktail.util.LatLng} Coordinates for new center of the map
		 */
		setCenter: function(position){},
		
		/**
		 * Get the current position the map is centered on.
		 * 
		 * @return	{qooxdoosample.cocktail.util.LatLng} Coordinates of the current center point
		 */
		getCenter: function(){},
		
		/**
		 * Set the zoom level of the map.
		 * 
		 * @param level	{Number} The zoom level
		 */
		setZoomLevel: function(level){},
		
		/**
		 * Get the current zoom level of the map
		 * 
		 * @return	{Number} The zoom level
		 */
		getZoomLevel: function(){},
		
		/**
		 * Get the current coordinates of the south west and north east corner of the map.
		 * 
		 * @return	{qooxdoosample.cocktail.util.Boundaries} The boundaries of the map 
		 */
		getMapBoundaries: function(){},
		
		/**
		 * Add an overlay to the map.
		 * Typical overlays are Markers, Routes or Shapes.
		 * 
		 * @param overlay	{qooxdoosample.cocktail.util.overlays.Overlay} The overlay that will be added to the map
		 */
		addOverlay: function(overlay){},
		
		/**
		 * Remove all overlays from the map.
		 */
		clearOverlays: function(){}
	}
});